【初心者向け】AWSの脅威検知サービスAmazon GuardDutyのよく分かる解説と情報まとめ
こんにちは、臼田です。
今回はAWS初心者向けに、AWSの脅威検知サービスであるAmazon GuardDutyを解説し、有用な情報をまとめます。
脅威検知サービスって聞くとすごく高度なサービスで初心者に関係ない?って感じるかもしれませんが、GuardDutyはすべてのAWSユーザが利用すべきサービスです。しっかり抑えておきましょう!
GuardDutyとは
GuardDutyはAWSアカウントやAWS環境に対する脅威検知サービスで、2017年のre:Inventで発表された比較的新しいサービスです。
大まかな概要は上記にも載っていますが簡単に下記にまとめます。
- AWS環境のセキュリティを継続的にチェックしてくれる
- 各種ログを自動的に取得して、機械学習で分析して異常を通知してくれる
- 使用方法は有効化するだけ
簡単にいい感じに検知してくれる、非常に頼もしいサービスです。
なぜGuardDutyが必要なのか?
冒頭に「GuardDutyはすべてのAWSユーザが利用すべきサービス」と書きましたがそれはなぜでしょうか?
それを知るためにはAWS環境のセキュリティリスクについて把握する必要があります。主に下記の2点を解説します。
- インターネット上のリソースに対する攻撃リスク
- AWSアカウントへの攻撃リスク
インターネット上のリソースに対する攻撃リスク
これまでのオンプレミスのサーバ環境ではインターネットに接しているWebサーバなどが外部からの攻撃リスクがありました。これらのリソースはFirewallやWAF等の各種セキュリティ製品やアプリケーションの設定で守ってきました。一方で開発用の環境や個人のコンピューティングリソースはインターネットから離れていて攻撃されにくい場所にありました。
しかしながら、クラウドになったことでちょっと検証用にサーバを立てたりしてもインターネットからアクセスできる状態となり、攻撃にさらされるリスクが高くなりました。
もちろんAWSではSecurity Groupやその他の設定を適切に行えばオンプレミスよりも簡単に安価に高いセキュリティを保つことができますが、適切に管理していないとうっかり公開されるべきでないリソースが公開されます。
そのため、クラウド環境ではセキュリティ意識が薄くなる開発環境や個人の環境で攻撃が成功するケースが少なくありません。
これらのリソースに対する不正な動作はすぐに検知する必要があります。
AWSアカウントへの攻撃リスク
攻撃されるのはAWS環境上に構築されているリソースだけではありません。AWSアカウント自体も対象になります。
具体的にはIAMのクレデンシャル情報です。
IAMのクレデンシャルを利用すると、例えば個人のローカルPCからawscliを利用してAWS環境を操作したり、EC2からS3にファイルをアップロードするなどサービス間を連携したりできます。
便利な一方で割り当てられた権限が高いクレデンシャルが流出してしまうと大変なことになります。
クレデンシャルが流出した際のよくある攻撃は高いインスタンスタイプのEC2を使ったコインマイニングです。しかも普段使わないリージョンで実施されることが多いため次の請求のタイミングまで気づきません。
攻撃者にとってはクラウド環境は従量課金でリソースが調達しやすいため、オンプレミスよりも的になりやすいです。
IAMのクレデンシャル管理を適切に行いつつ、万が一の事があったときにすぐに気づける必要があります。
GuardDutyで被害を防ぐ
AWS環境では常に上記のような攻撃リスクに晒されています。いずれも根本的な対策が必要なものですが、全てにおいてキチンと対策できるかと言われるとそれは簡単ではありません。
GuardDutyはAWSの仕組みで簡単にこれらの脅威を検知することが可能です。各セキュリティ対策はキチンと行いつつ、GuardDutyも有効化することでこれらの被害を防いだり、軽減することが可能です。
GuardDutyの原理と動作
GuardDutyはいい感じに脅威を検知してくれるサービスですが、一体どのように動いているのでしょうか?簡単に説明すると下記のようになっています。
- 各種AWSのログを収集している
- AWSへのAPIコールを記録するCloudTrailのイベントログ
- VPC内のトラフィックを記録するVPC Flow Logs
- 各種リソースからのDNSログ
- ログを機械学習とAIで分析している
- 不正なIPの情報など既存の脅威情報を活用している
- 通常の利用と異なるリクエストなどを検知している
- リスクレベルを10段階で評価する
詳細は下記にありますので、より知りたい場合には参照してください。
なお、分析するためのCloudTrailやVPC Flow Logsのログについては、利用者が有効化していなくてもAWSがバックグラウンドで取得している情報を使うため、GuardDutyを利用するためにそれぞれを有効化する必要はありません。ただし、実際に脅威を検知したあと調査をする段階で役に立つため、それぞれのログも有効化しておくと良いでしょう。
具体的に検知する内容は下記のようなものが挙げられます。(少し古いですがわかりやすく説明しています。最新のリストはこちら)
検知の精度
機械学習で検知すると言われると、どれくらいちゃんと動作するの?と思われるかと思います。
うっかり公開してしまったWebサーバや、たまたま普段と違う場所でAWSを利用した際に適切に検知した実績があります。詳細は下記をご確認ください。
使い方
使い方は非常に簡単で、GuardDutyのコンソールでポチッと有効化するだけです。(もちろん通知設定も別途必要ですが)
しかしながらこれは各リージョンで実施する必要があります。下記を参考に全リージョンで有効化することをおすすめします。通知設定も合わせてできます。
また、マルチアカウントで展開する場合には下記を参考に通知をまとめるといいでしょう。
価格
めちゃくちゃ安いですが、無料ではありません。
- VPC フローログと DNS ログ分析: 1.10 USD/GB〜
- AWS CloudTrail イベント分析: 4.40 USD/1,000,000 イベント〜
- 東京リージョン想定。詳細はこちら
これだけだと安いかよくわからないと思いますが、とにかく安いんです。詳細は下記をご確認ください。
無料で30日間利用できるため、実際の利用費を確認するにはとりあえず使う方が手っ取り早いです。任意のタイミングで無効化することも可能です。
利用実績
様々なエンタープライズ企業でも活用されています。事例を公開しているところを下記に抜粋します。
サイバーエージェントさん
【サイバーエージェント様ご登壇事例】【レポート】「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み #AWSSummit
クックパッドさん
GEさん
[レポート]SEC319: エンタープライズ企業のセキュリティ要件をAWSのネイティブセキュリティ機能で満たす #reinvent
運用(実際に検知したらどうするか)
有効化したあとは、何かあればCloudWatch EventとSNSを介して通知が飛びます。
実際に遭遇したくは無いですが脅威が発生することを前提に、どう対処するか考えておく必要があります。
AWSのユーザガイドでは、それぞれの検知結果に応じてどのように対処すべきか情報がまとまっています。
また、実際に対処した情報が下記にありますので、確認してイメージを高めてください。
パートナー連携
GuardDuty自体は単体で十分成り立つサービスですが、サードパーティと連携することにより活用の幅が広がります。
こちらのパートナーソリューションの情報も参照してください。
まとめ
GuardDutyとはなにか、なぜ全員必要なのか、どう使えばいいのか、どう付き合えばいいのかをまとめました。
AWS環境でセキュリティをしっかり行っていくことは簡単ではありませんが、その中でも初めの方に使っておきたいサービスの一つがGuardDutyです。
適切にメリットを理解して、すべての環境、すべてのリージョンで有効化しましょう!
おまけ
GuardDuty以外のセキュリティ対策も含めた基本的な内容が「AWSご利用開始時に最低限おさえておきたい10のこと」として下記にまとまっていますので合わせて参照してください。